home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGNG_C / TPTC17GS.LZH / HISTORY.DOC < prev    next >
Text File  |  1988-05-03  |  13KB  |  278 lines

  1.  
  2. Revision history of TPTC (in reverse order)
  3. -------------------------------------------
  4.  
  5. 05/03/88
  6. -- corrected variant records when selector is a character type.
  7. -- improved handling of pointers, with, untyped params and absolute vars.
  8. -- added specific translation for addr() builtin.
  9. -- corrected translation of id^[n].m (simultaneous pointer dereference
  10.    and subscript requires an extra [0] subscript in c.)
  11. -- partial coding of DOS and CRT units.
  12. -- automatic casting in assignments involving type conversions.
  13.  
  14. 04/13/88
  15. -- added -3 option to automatically load declarations
  16.    from tp3.pas unit when translating turbo pascal 3.0 sources.
  17.  
  18. 04/12/88 1.7d
  19. -- internal changes in global initializer handling.
  20. -- work on tptcsys for cleaner compilation.
  21. -- changed constants to 'enum' for scalars and 'const' for others.
  22.    (string constants must still use #define)
  23. -- added proper typecasting in new() translation.
  24.  
  25. 04/08/88
  26. -- added argc, argv parameter variables to unit initializers.
  27. -- improved unit/main initialization sequences.
  28. -- worked on tptcsys.pas for clean compile and fewer stubs.
  29. -- illegal global variable initializers within an interface section
  30.    are now moved to a runtime initializer procedure.
  31.  
  32. 04/07/88 1.7c
  33. -- unit initializers are now translated as UNITNAME_init procedures.
  34. -- the main block now automatically calls all used unit initializer
  35.    procedures.
  36. -- the lines/minute speed report is now based on source lines rather
  37.    than object lines.
  38. -- suppressed 'not identical' warning when builtins are redefined.
  39. -- lines starting with "\" are passed directly to object file
  40.    without any translation (support for implementation of tp4-like
  41.    runtime library under C systems).
  42. -- added -NU command option to disable use of standard unit tptcsys
  43.    (needed when translating tptcsys).
  44. -- deleted tptcmac.h; moved all declarations to tptcsys unit.
  45.    
  46. 04/06/88
  47. -- further speedup changes.
  48. -- changed unit header from ".." includes to <..> includes.
  49. -- corrected type detection in array pointer subscripting.
  50. -- corrected code generation for multiple constants on a line.
  51.  
  52. 04/05/88 1.7b
  53. -- changes in unit header format to ensure that all required unit
  54.    headers are included even when not explicitly mentioned in the main
  55.    compilation unit.
  56. -- tp4 typecasts are detected and translated.
  57. -- recoded symbol table lookup in assembly language (up to 50% faster).
  58.  
  59. 03/30/88 1.7a
  60. -- added -R option to format displays for redirection to a file.
  61. -- added version header to .UNS files.  be sure to re-translate tptcsys.pas
  62.    and all standard unit interfaces (dostd.bat).
  63. -- changed symbol table format to improve expression typing.
  64. -- major rewrite of expression and declaration parsers.  symbol table
  65.    entries are now chained by type (eliminating the need for the 'supertype'
  66.    entry and much of the associated guesswork).
  67. -- 'with' translation can now detect the expression typename.
  68. -- added a warning if an expression exceeds the 255 character length limit.
  69.  
  70. 03/26/88
  71. -- changes in $i parsing (fixed case where '$i fxxx' parsed as '$ifdef xxx')
  72. -- changed untyped constants back to #defines despite the scoping problems
  73.    (sure wish borland had fully implemented 'const' declarations!).
  74. -- corrected translation of 'type mine = ^simple' where simple is already
  75.    defined (tptc was doing a forward-type translation sometimes).
  76.  
  77. ---------------
  78. 03/25/88 v1.7
  79. -- repackaged into three archives:  tptc17 (main file; translator, docs and
  80.    supporting files), tptc17sc (source code), tptc17tc (test cases).
  81. -- cosmetic changes in code generation for interface sections.
  82. -- implemented 'as new_name' clause for specification of a different
  83.    procedure/function name in the translated code (see tptcsys.pas).
  84. -- inline procedures in an interface section generate a warning since
  85.    they cannot be translated in this context.
  86. -- added -Sdir option to specify a search directory for .UNS symbol files
  87.    that are not in the default directory.
  88. -- default command-line options can be specified through the TPTC
  89.    environment variable from dos.
  90.  
  91. 03/24/88
  92. -- partial translation of expressions accessing variant record members.
  93. -- better handling of forward redeclarations that are incomplete.
  94. -- implemented translation of TP4 units
  95.         -- 'interface' section creates .UNS file with TPTC symbol table
  96.            information saved for later use.
  97.         -- 'interface' section creates .UNH header file for inclusion
  98.            in C sources using the unit
  99.         -- 'uses' section generates include of .UNH header and loads
  100.            the .UNS data into the current symbol table
  101.    you must translate SYSTEM.DOC, DOS.DOC, etc, before units USING these
  102.    can be translated.
  103. -- implemented translations for $DEFINE, $IFDEF, $IFNDEF, $ELSE and $ENDIF.
  104. -- moved standard symbol table entries to the special unit TPTCSYS.PAS,
  105.    which is implicitly "used" in each translation.  TPTCSYS.UNS must be
  106.    in the default directory when TPTC is called.  this eliminates the need
  107.    for special translations for val, intr, msdos and many other standard
  108.    procedures with VAR parameters.
  109. -- implemented translation of 'inline' procedures (tp4).
  110.  
  111. 03/23/88
  112. -- corrected translation of :(expr) in write when expr starts with a digit.
  113. -- added runtime check for too many procedure parameters.
  114. -- better handling of nested with statements.
  115. -- partial translation of with dependant expressions.
  116. -- changed constant declarations from #define to 'const' to allow full
  117.    scoping rules. (this doesn't work with tc1.0!)
  118.  
  119. 03/22/88
  120. -- corrected parsing error that could cause lockup at end of translation.
  121. -- added translation from chr(lit) to character literals where possible.
  122. -- allowed redefinition of 'exit' procedure.
  123. -- corrected empty case statement and empty then-before-else translation.
  124. -- corrected &* possibility in fscanv.
  125. -- improved output format in inline translation.
  126. -- added -BP option for deBug trace of statement Parsing.
  127. -- implemented proper local symbol tables in nested functions.
  128.  
  129. 03/21/88
  130. -- added -B option for deBug trace while scanning source file.
  131. -- changed numeric character literals from octal to hex.
  132. -- added warning if pascal string length byte is used in expressions.
  133. -- implemented translation of ^c^c (multiple control character literals).
  134. -- eliminated recursion in scanning consecutive comments.
  135. -- added specific translations for \a, \f, \t, \v character literals.
  136. -- corrected translation of ^.,  ^[, and #$hex character literals.
  137. -- added ".pas" default on include filenames.
  138. -- corrected translation of "external 'file.ext'..." procedure option.
  139.  
  140. 03/19/88
  141. -- slight improvement in recovery from syntax errors.
  142. -- corrected parsing of initialized set constants.
  143.  
  144. 03/18/88
  145. -- disable '#...' translation (tshell passing) without -# option.
  146. -- exit all nested procs in fatal error handler.
  147. -- added symbol table entries for 'builtin' procedure translations (allows
  148.    user redefinition of 'pos', for example).
  149. -- predefined symbol table entries are reported only if -DP option is used.
  150. -- partial translation of 'with' statements.
  151.  
  152. 03/17/88
  153. -- corrected translation of pointers to simple types.
  154. -- improved translation of character and numeric subrange types.
  155. -- partial translation of set expressions.
  156. -- corrected enumeration-type subscript range calculation.
  157. -- added -Tnn command option to control tabstops in declarations.
  158. -- changes in symbol table and parser for 20% faster operation.
  159.  
  160. 03/16/88
  161. -- added macros for paramcount and paramstr instead of specific translations.
  162. -- corrected implementation of mt+ translation for write([proc],...) form.
  163. -- added unique prefix on local #define's to prevent name clashes.
  164. -- added specific translations for \r, \n, \b, \e character constants.
  165. -- added translation for intr() and msdos() calls.
  166. -- implemented constant folding in trivial cases where index bases are added.
  167. -- added translation of @(...) operator.
  168.  
  169. 03/15/88
  170. -- added boolean as a basic type; this allows automatic selection of &, |
  171.    and &&, || in expressions.
  172. -- implemented translation for 'str' standard procedure.
  173. -- partial translation of 'val' procedure.
  174. -- better implementation of subscript base value translation.
  175. -- better type tracking in subscripted variables.
  176.  
  177. 03/14/88
  178. -- improved indentation in generated code for variant record decls (remember,
  179.    tptc is NOT a pretty printer!  use CB or INDENT to get pretty indentation).
  180.  
  181. 03/13/88
  182. -- added translation of :(expression) parameters in write statements.
  183. -- corrected translation of 'actual' VAR and untyped parameters.
  184. -- improved type detection in record member references.
  185. -- created 'uninc' postprocessor to split up output into original
  186.    include files (placed in a user specified destination directory).
  187. -- added 't2c.bat' batch file to combine translation and include processing.
  188. -- added code to ignore tp4.0 interface sections.
  189.  
  190. 03/12/88
  191. -- implemented proper procedure ordering for nested procedures (inmost
  192.    procedures are output first, followed by outer procedures).
  193. -- shortened command-line options to single letters.
  194. -- added -W option to allow specification of a RAMDISK for work files.
  195.  
  196. 03/11/88
  197. -- new method of expression type tracking; type botching is greatly
  198.    reduced while speeding execution.
  199. -- rewrote include file handler to allow nested includes.
  200.  
  201. ---------------
  202. 03/10/88 v1.6a
  203. -- corrected recent errors in #include translation and -include processing.
  204. -- changes in status display and error message formats.
  205. -- translation of multi-dimensional and nested array declarations.
  206. -- translation of untyped var parameters.
  207. -- partial translation of absolute variable declarations.
  208. -- improved data type declaration in expressions with subscripts.
  209.  
  210. ---------------
  211. 02/13/88 v1.6
  212.   Converted to TPAS 4.0 format; released under the SourceWare concept
  213.   (see README and LICENSE.DOC).
  214.  
  215. 10/15/87
  216. -- corrected error in typed constant translation where nested records
  217.    are initialized.
  218. -- variant record declarations are translated into unions but no variant
  219.    expression translations are done.
  220. -- changed nested procedure error messages to include procedure name.
  221.  
  222. 10/13/87
  223. -- improved string and array parameter translations
  224. -- string returns are now translated into char *
  225.  
  226. ---------------
  227. -- detect concat(concat... and replace with a sprintf variant
  228. -- changed sprintf calls to sbld calls to preserve sources during build
  229. -- pos(c,str) and pos(str,str) are now separately translated
  230. -- added 'base' to symbol table; use to add base-subscript offset
  231.    in all subscript references.
  232. -- moved typename translations to tpcmac.h header
  233. -- fixed bug in non-translation of tshell directives
  234. -- forward pointer declarations
  235. -- translate inline into asm statements
  236. -- complete forward translation
  237.  
  238. 06/01/87  v1.5
  239.    Added new command-line parser. Added -lower option to map identifiers
  240.    to lower case. Added -mt option to force pascal/mt+ mode. Added
  241.    partial var-parameter translation. Mem, MemW, Port and PortW are all
  242.    translated into Turbo C. Turbo-c procedure declaration syntax is now
  243.    used. Arrays may now be subscripted by enumeration types. Null else
  244.    clause now handled properly in IF and CASE statements. For .. downto
  245.    is now translated correctly. The VAL..VAL form is now translated in
  246.    case statements.
  247.  
  248. 05/26/87  v1.4
  249.    Additional support for pascal/MT+.   The translator "shifts" into a
  250.    MT+ specific mode when it recognizes the 'MODULE' statement. The '|'
  251.    operator is recognized for bitwise OR. The '\', '?' and '~' operators
  252.    are all translated into a unary not. Read(ln) and Write(ln) now
  253.    support the special case of "[]" for the I/O routine. Long integer
  254.    literals are translated from '#nnn' to 'nnnL'
  255.  
  256. 05/20/87  v1.3
  257.    Added support for pascal/MT+:  external procedures and variables,
  258.    special write/read indirect syntax, & and ! operators, default string
  259.    size for string declarations. Distributed as TPC13.
  260.  
  261. 04/22/87  v1.2
  262.    Corrected an error that led to a crash on lines with more than 40
  263.    leading spaces.  Distributed as TPC12.
  264.  
  265. 04/15/87  v1.1
  266.    Corrected handling of unary minus. Improved error messages; added
  267.    error messages to object file. Added handler for integer subrange
  268.    types. Added handling for goto statement and numeric labels. The
  269.    macro header, tpcmac.h, now contains more declarations. Distributed
  270.    as TPC11.
  271.  
  272. 12/19/86  v1.0
  273.    First distributed as TPC10 under shareware concept.
  274.  
  275. 09/09/85  v0.0  (paspp)
  276.    Initial coding by Samuel H. Smith.  Never released.
  277.  
  278.